[INFO] cloning repository https://github.com/ecortez91/sentinel
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ecortez91/sentinel" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fecortez91%2Fsentinel", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fecortez91%2Fsentinel'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 79608302f624b31e34fd5e21cecea0faf1c62ef5
[INFO] testing ecortez91/sentinel against master#cced03bfd61a304243a34504618ecec86c17063f for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fecortez91%2Fsentinel" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ecortez91/sentinel
[INFO] finished tweaking git repo https://github.com/ecortez91/sentinel
[INFO] tweaked toml for git repo https://github.com/ecortez91/sentinel written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ecortez91/sentinel on toolchain cced03bfd61a304243a34504618ecec86c17063f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ecortez91/sentinel already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rust-i18n v3.1.5
[INFO] [stderr]   Downloaded tiny_http v0.12.0
[INFO] [stderr]   Downloaded chunked_transfer v1.5.0
[INFO] [stderr]   Downloaded windows-service v0.8.0
[INFO] [stderr]   Downloaded triomphe v0.1.15
[INFO] [stderr]   Downloaded normpath v1.5.0
[INFO] [stderr]   Downloaded rust-i18n-macro v3.1.5
[INFO] [stderr]   Downloaded hostname v0.4.2
[INFO] [stderr]   Downloaded base62 v2.2.3
[INFO] [stderr]   Downloaded wrapcenum-derive v0.4.1
[INFO] [stderr]   Downloaded quoted_printable v0.5.1
[INFO] [stderr]   Downloaded rust-i18n-support v3.1.5
[INFO] [stderr]   Downloaded hyperlocal v0.9.1
[INFO] [stderr]   Downloaded email-encoding v0.4.1
[INFO] [stderr]   Downloaded stacker v0.1.23
[INFO] [stderr]   Downloaded psm v0.1.30
[INFO] [stderr]   Downloaded nvml-wrapper-sys v0.8.0
[INFO] [stderr]   Downloaded hyper-named-pipe v0.1.0
[INFO] [stderr]   Downloaded arc-swap v1.8.1
[INFO] [stderr]   Downloaded nvml-wrapper v0.10.0
[INFO] [stderr]   Downloaded chumsky v0.9.3
[INFO] [stderr]   Downloaded bollard-stubs v1.47.1-rc.27.3.1
[INFO] [stderr]   Downloaded ntapi v0.4.2
[INFO] [stderr]   Downloaded bollard v0.18.1
[INFO] [stderr]   Downloaded lettre v0.11.19
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6864881db03dc935734db1d045300593812e57adf7bd03f26d766f64d300603c
[INFO] running `Command { std: "docker" "start" "-a" "6864881db03dc935734db1d045300593812e57adf7bd03f26d766f64d300603c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6864881db03dc935734db1d045300593812e57adf7bd03f26d766f64d300603c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6864881db03dc935734db1d045300593812e57adf7bd03f26d766f64d300603c", kill_on_drop: false }`
[INFO] [stdout] 6864881db03dc935734db1d045300593812e57adf7bd03f26d766f64d300603c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b6b48165d740289b74b1b42455bee6824f16cfd5fbb1fcb79021bfdad8b3c84f
[INFO] running `Command { std: "docker" "start" "-a" "b6b48165d740289b74b1b42455bee6824f16cfd5fbb1fcb79021bfdad8b3c84f", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling zmij v1.0.19
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling arc-swap v1.8.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling itertools v0.11.0
[INFO] [stderr]    Compiling normpath v1.5.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling stacker v0.1.23
[INFO] [stderr]    Compiling siphasher v1.0.2
[INFO] [stderr]    Compiling base62 v2.2.3
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling ignore v0.4.25
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling globwalk v0.8.1
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling ar_archive_writer v0.5.1
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling serde_with v3.16.1
[INFO] [stderr]    Compiling rust-i18n v3.1.5
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]    Compiling psm v0.1.30
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling triomphe v0.1.15
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling rust-i18n-support v3.1.5
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyperlocal v0.9.1
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling bollard-stubs v1.47.1-rc.27.3.1
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling rust-i18n-macro v3.1.5
[INFO] [stderr]    Compiling wrapcenum-derive v0.4.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling chumsky v0.9.3
[INFO] [stderr]    Compiling nvml-wrapper-sys v0.8.0
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling email-encoding v0.4.1
[INFO] [stderr]    Compiling hostname v0.4.2
[INFO] [stderr]    Compiling chunked_transfer v1.5.0
[INFO] [stderr]    Compiling ascii v1.1.0
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling email_address v0.2.9
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling quoted_printable v0.5.1
[INFO] [stderr]    Compiling smawk v0.3.2
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling textwrap v0.16.2
[INFO] [stderr]    Compiling nvml-wrapper v0.10.0
[INFO] [stderr]    Compiling rusqlite v0.31.0
[INFO] [stderr]    Compiling sysinfo v0.32.1
[INFO] [stderr]    Compiling lettre v0.11.19
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling clap v4.5.57
[INFO] [stderr]    Compiling tiny_http v0.12.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling bollard v0.18.1
[INFO] [stderr]    Compiling sentinel v0.3.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 34s
[INFO] running `Command { std: "docker" "inspect" "b6b48165d740289b74b1b42455bee6824f16cfd5fbb1fcb79021bfdad8b3c84f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b6b48165d740289b74b1b42455bee6824f16cfd5fbb1fcb79021bfdad8b3c84f", kill_on_drop: false }`
[INFO] [stdout] b6b48165d740289b74b1b42455bee6824f16cfd5fbb1fcb79021bfdad8b3c84f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 23a892cfa415721610f536144eccdce970e6f9b7f262444a2c5a0df0e3759dbd
[INFO] running `Command { std: "docker" "start" "-a" "23a892cfa415721610f536144eccdce970e6f9b7f262444a2c5a0df0e3759dbd", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling tempfile v3.25.0
[INFO] [stderr]    Compiling sentinel v0.3.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 15.57s
[INFO] running `Command { std: "docker" "inspect" "23a892cfa415721610f536144eccdce970e6f9b7f262444a2c5a0df0e3759dbd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "23a892cfa415721610f536144eccdce970e6f9b7f262444a2c5a0df0e3759dbd", kill_on_drop: false }`
[INFO] [stdout] 23a892cfa415721610f536144eccdce970e6f9b7f262444a2c5a0df0e3759dbd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 20f92f63ddb0bdefb9155a3815be944a83e376aa14a25b55bcf07dfd85b1c0e0
[INFO] running `Command { std: "docker" "start" "-a" "20f92f63ddb0bdefb9155a3815be944a83e376aa14a25b55bcf07dfd85b1c0e0", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.34s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/sentinel-64c8a15d26d37e3c)
[INFO] [stdout] 
[INFO] [stdout] running 554 tests
[INFO] [stdout] test ai::conversation::tests::add_assistant_message ... ok
[INFO] [stdout] test ai::conversation::tests::add_system_message ... ok
[INFO] [stdout] test ai::conversation::tests::add_user_message ... ok
[INFO] [stdout] test ai::conversation::tests::append_creates_new_if_empty ... ok
[INFO] [stdout] test ai::conversation::tests::api_messages_filters_system ... ok
[INFO] [stdout] test ai::conversation::tests::clear_empties_conversation ... ok
[INFO] [stdout] test ai::conversation::tests::append_creates_new_if_last_not_assistant ... ok
[INFO] [stdout] test ai::conversation::tests::message_assistant ... ok
[INFO] [stdout] test ai::conversation::tests::append_to_last_assistant_extends ... ok
[INFO] [stdout] test ai::conversation::tests::message_user ... ok
[INFO] [stdout] test ai::conversation::tests::message_system ... ok
[INFO] [stdout] test ai::conversation::tests::api_messages_correct_format ... ok
[INFO] [stdout] test ai::conversation::tests::new_conversation_empty ... ok
[INFO] [stdout] test ai::conversation::tests::trim_removes_from_front ... ok
[INFO] [stdout] test ai::conversation::tests::trims_to_max_history ... ok
[INFO] [stdout] test alerts::detector::tests::thermal_critical_at_threshold ... ok
[INFO] [stdout] test alerts::detector::tests::thermal_emergency_at_threshold ... ok
[INFO] [stdout] test alerts::detector::tests::thermal_cooldown_dedup ... ok
[INFO] [stdout] test alerts::detector::tests::thermal_multiple_sensors ... ok
[INFO] [stdout] test alerts::detector::tests::thermal_no_alert_below_warning ... ok
[INFO] [stdout] test alerts::detector::tests::thermal_warning_at_threshold ... ok
[INFO] [stdout] test alerts::detector::tests::zombie_alert_fires_when_no_parent ... ok
[INFO] [stdout] test alerts::detector::tests::zombie_alert_fires_when_parent_not_ignored ... ok
[INFO] [stdout] test alerts::detector::tests::zombie_ignored_when_parent_in_ignore_list ... ok
[INFO] [stdout] test alerts::detector::tests::zombie_alert_message_includes_parent_name ... ok
[INFO] [stdout] test alerts::detector::tests::zombie_parent_ignore_is_case_insensitive ... ok
[INFO] [stdout] test config::tests::write_config_bytes_to_mib_conversion ... ok
[INFO] [stdout] test constants::tests::all_model_tiers_are_distinct ... ok
[INFO] [stdout] test constants::tests::all_models_start_with_claude_prefix ... ok
[INFO] [stdout] test constants::tests::model_cheap_is_haiku ... ok
[INFO] [stdout] test constants::tests::model_legacy_alias_equals_middle ... ok
[INFO] [stdout] test constants::tests::model_middle_is_sonnet ... ok
[INFO] [stdout] test constants::tests::model_premium_is_opus ... ok
[INFO] [stdout] test constants::tests::premium_is_not_used_as_default ... ok
[INFO] [stdout] test config::tests::save_atomic_no_temp_file_remains ... ok
[INFO] [stdout] test diagnostics::tests::contention_detects_zombies ... ok
[INFO] [stdout] test diagnostics::tests::contention_healthy_system ... ok
[INFO] [stdout] test diagnostics::tests::contention_high_cpu ... ok
[INFO] [stdout] test diagnostics::tests::contention_high_memory ... ok
[INFO] [stdout] test diagnostics::tests::contention_ignores_zombie_with_ignored_parent ... ok
[INFO] [stdout] test diagnostics::tests::anomaly_scan_empty ... ok
[INFO] [stdout] test config::tests::save_creates_parent_directories ... ok
[INFO] [stdout] test config::tests::save_includes_documentation_header ... ok
[INFO] [stdout] test config::tests::save_omits_none_thermal_credentials ... ok
[INFO] [stdout] test config::tests::save_load_full_roundtrip ... ok
[INFO] [stdout] test config::tests::save_load_thermal_credentials_roundtrip ... ok
[INFO] [stdout] test config::tests::save_roundtrip_preserves_values ... ok
[INFO] [stdout] test diagnostics::tests::port_diagnosis_empty ... ok
[INFO] [stdout] test diagnostics::tests::process_analysis_not_running ... ok
[INFO] [stdout] test diagnostics::tests::report_max_severity ... ok
[INFO] [stdout] test diagnostics::tests::process_analysis_high_cpu_suggests_renice ... ok
[INFO] [stdout] test diagnostics::tests::report_to_text_empty ... ok
[INFO] [stdout] test diagnostics::tests::report_to_text_with_findings ... ok
[INFO] [stdout] test diagnostics::tests::truncate_cmd_long ... ok
[INFO] [stdout] test diagnostics::tests::report_max_severity_empty ... ok
[INFO] [stdout] test diagnostics::tests::truncate_cmd_short ... ok
[INFO] [stdout] test diagnostics::tests::process_analysis_with_current ... ok
[INFO] [stdout] test models::alert::tests::age_display_just_created ... ok
[INFO] [stdout] test models::alert::tests::alert_new_fields ... ok
[INFO] [stdout] test diagnostics::tests::timeline_empty_store ... ok
[INFO] [stdout] test models::process::tests::format_bytes_exact_gib ... ok
[INFO] [stdout] test models::process::tests::format_bytes_exact_kib ... ok
[INFO] [stdout] test models::alert::tests::alert_timestamp_is_recent ... ok
[INFO] [stdout] test models::process::tests::format_bytes_kib_range ... ok
[INFO] [stdout] test models::process::tests::format_bytes_large_gib ... ok
[INFO] [stdout] test models::process::tests::format_bytes_mib_range ... ok
[INFO] [stdout] test models::process::tests::format_bytes_small ... ok
[INFO] [stdout] test models::process::tests::format_bytes_zero ... ok
[INFO] [stdout] test models::process::tests::process_info_disk_displays ... ok
[INFO] [stdout] test models::process::tests::process_info_memory_display ... ok
[INFO] [stdout] test models::process::tests::process_status_display ... ok
[INFO] [stdout] test models::process::tests::process_status_equality ... ok
[INFO] [stdout] test diagnostics::tests::timeline_with_events ... ok
[INFO] [stdout] test models::system::tests::gpu_memory_percent_full ... ok
[INFO] [stdout] test models::system::tests::gpu_memory_percent_normal ... ok
[INFO] [stdout] test models::system::tests::gpu_memory_percent_zero_total ... ok
[INFO] [stdout] test models::system::tests::memory_percent_full ... ok
[INFO] [stdout] test models::system::tests::memory_percent_normal ... ok
[INFO] [stdout] test models::system::tests::swap_percent_full ... ok
[INFO] [stdout] test models::system::tests::memory_percent_zero_total ... ok
[INFO] [stdout] test models::system::tests::swap_percent_normal ... ok
[INFO] [stdout] test models::system::tests::swap_percent_zero_total ... ok
[INFO] [stdout] test notifications::telegram::tests::category_display_name_not_abbreviated ... ok
[INFO] [stdout] test notifications::telegram::tests::category_display_name_returns_human_readable ... ok
[INFO] [stdout] test notifications::telegram::tests::explain_group_cpu_high ... ok
[INFO] [stdout] test notifications::telegram::tests::explain_group_extreme_multiplier ... ok
[INFO] [stdout] test notifications::telegram::tests::explain_group_memory_high ... ok
[INFO] [stdout] test notifications::telegram::tests::explain_group_memory_leak ... ok
[INFO] [stdout] test notifications::telegram::tests::digest_buffer_caps_at_max ... ok
[INFO] [stdout] test notifications::telegram::tests::explain_group_zombie ... ok
[INFO] [stdout] test notifications::telegram::tests::format_alert_contains_key_fields ... ok
[INFO] [stdout] test notifications::telegram::tests::format_alert_with_context_handles_partial_info ... ok
[INFO] [stdout] test notifications::telegram::tests::format_alert_with_context_includes_system_info ... ok
[INFO] [stdout] test notifications::telegram::tests::format_bytes_f64_ranges ... ok
[INFO] [stdout] test notifications::telegram::tests::format_digest_summarizes_alerts ... ok
[INFO] [stdout] test models::alert::tests::category_display ... ok
[INFO] [stdout] test models::alert::tests::severity_display ... ok
[INFO] [stdout] test models::alert::tests::severity_ordering ... ok
[INFO] [stdout] test models::process::tests::format_bytes_exact_mib ... ok
[INFO] [stdout] test notifications::telegram::tests::format_grouped_single_falls_back ... ok
[INFO] [stdout] test notifications::telegram::tests::format_alert_severity_emojis ... ok
[INFO] [stdout] test notifications::telegram::tests::format_grouped_sorts_workers_by_value_descending ... ok
[INFO] [stdout] test notifications::telegram::tests::format_grouped_multi_shows_detailed_breakdown ... ok
[INFO] [stdout] test notifications::telegram::tests::format_grouped_truncates_many_workers ... ok
[INFO] [stdout] test notifications::telegram::tests::format_digest_truncates_long_list ... ok
[INFO] [stdout] test notifications::telegram::tests::from_config_falls_back_to_env_vars ... ok
[INFO] [stdout] test notifications::telegram::tests::format_grouped_with_context_shows_inline ... ok
[INFO] [stdout] test notifications::telegram::tests::from_config_returns_none_when_token_missing ... ok
[INFO] [stdout] test notifications::telegram::tests::from_config_returns_none_when_both_missing ... ok
[INFO] [stdout] test notifications::telegram::tests::from_config_returns_none_when_chat_id_missing ... ok
[INFO] [stdout] test notifications::telegram::tests::group_alerts_empty ... ok
[INFO] [stdout] test notifications::telegram::tests::from_config_returns_none_when_token_empty ... ok
[INFO] [stdout] test notifications::telegram::tests::from_config_returns_some_when_configured ... ok
[INFO] [stdout] test notifications::telegram::tests::group_alerts_non_groupable_stays_separate ... ok
[INFO] [stdout] test notifications::telegram::tests::group_alerts_mixed_apps ... ok
[INFO] [stdout] test notifications::telegram::tests::group_alerts_workers_same_parent ... ok
[INFO] [stdout] test notifications::telegram::tests::group_computes_correct_average ... ok
[INFO] [stdout] test notifications::telegram::tests::parse_min_severity_variants ... ok
[INFO] [stdout] test notifications::telegram::tests::resolve_parent_missing_parent_returns_self ... ok
[INFO] [stdout] test notifications::telegram::tests::resolve_parent_non_worker_returns_self ... ok
[INFO] [stdout] test notifications::telegram::tests::groupable_categories ... ok
[INFO] [stdout] test notifications::telegram::tests::rate_limiting_blocks_duplicate ... ok
[INFO] [stdout] test notifications::telegram::tests::resolve_parent_direct_parent ... ok
[INFO] [stdout] test notifications::telegram::tests::suggest_action_cpu_danger ... ok
[INFO] [stdout] test notifications::telegram::tests::resolve_parent_stops_at_init ... ok
[INFO] [stdout] test notifications::telegram::tests::suggest_action_disk_io ... ok
[INFO] [stdout] test notifications::telegram::tests::suggest_action_cpu_warning ... ok
[INFO] [stdout] test notifications::telegram::tests::resolve_parent_two_hops ... ok
[INFO] [stdout] test notifications::telegram::tests::suggest_action_fallback_category ... ok
[INFO] [stdout] test notifications::telegram::tests::suggest_action_memory_warning ... ok
[INFO] [stdout] test notifications::telegram::tests::suggest_action_zombie ... ok
[INFO] [stdout] test notifications::telegram::tests::suggest_action_memory_critical ... ok
[INFO] [stdout] test notifications::telegram::tests::severity_filter_blocks_low_severity ... ok
[INFO] [stdout] test notifications::telegram::tests::send_grouped_alerts_rate_limits_by_app_name ... ok
[INFO] [stdout] test notifications::telegram::tests::worker_detail_fields ... ok
[INFO] [stdout] test notifications::telegram::tests::worker_details_populated_from_process_info ... ok
[INFO] [stdout] test notifications::telegram::tests::worker_details_populated_for_cpu_category ... ok
[INFO] [stdout] test notifications::telegram::tests::worker_name_detection ... ok
[INFO] [stdout] test notifications::tests::is_configured_checks_fields ... ok
[INFO] [stdout] test notifications::tests::notify_event_subjects ... ok
[INFO] [stdout] test notifications::tests::thermal_alert_body_formatting ... ok
[INFO] [stdout] test plugins::market::client::tests::parse_cryptocompare_article_missing_optional_fields ... ok
[INFO] [stdout] test plugins::market::client::tests::client_creation ... ok
[INFO] [stdout] test plugins::market::client::tests::parse_cryptocompare_news_response ... ok
[INFO] [stdout] test plugins::market::client::tests::parse_kline_response ... ok
[INFO] [stdout] test diagnostics::tests::disk_analysis_nearly_full ... ok
[INFO] [stdout] test plugins::market::client::tests::parse_ticker_response ... ok
[INFO] [stdout] test plugins::market::client::tests::sentiment_label_mapping ... ok
[INFO] [stdout] test plugins::market::client::tests::sentiment_label_case_insensitive ... ok
[INFO] [stdout] test plugins::market::models::tests::chart_range_all_has_five ... ok
[INFO] [stdout] test diagnostics::tests::disk_analysis_with_disks ... ok
[INFO] [stdout] test plugins::market::models::tests::extract_base_asset_btc_pair ... ok
[INFO] [stdout] test plugins::market::models::tests::extract_base_asset_eth ... ok
[INFO] [stdout] test plugins::market::models::tests::extract_base_asset_btc ... ok
[INFO] [stdout] test plugins::market::models::tests::extract_base_asset_sol ... ok
[INFO] [stdout] test plugins::market::models::tests::format_change_negative ... ok
[INFO] [stdout] test plugins::market::models::tests::chart_range_interval ... ok
[INFO] [stdout] test plugins::market::models::tests::format_change_positive ... ok
[INFO] [stdout] test plugins::market::models::tests::format_large_number_million ... ok
[INFO] [stdout] test plugins::market::models::tests::format_large_number_billion ... ok
[INFO] [stdout] test plugins::market::models::tests::format_price_small ... ok
[INFO] [stdout] test plugins::market::models::tests::format_price_large ... ok
[INFO] [stdout] test plugins::market::models::tests::news_item_creation ... ok
[INFO] [stdout] test plugins::market::models::tests::news_item_no_sentiment ... ok
[INFO] [stdout] test plugins::market::models::tests::format_large_number_trillion ... ok
[INFO] [stdout] test notifications::tests::rate_limiting_works ... ok
[INFO] [stdout] test notifications::tests::smtp_config_from_env_missing_returns_none ... ok
[INFO] [stdout] test plugins::market::models::tests::range_stats_returns_none_for_too_few_points ... ok
[INFO] [stdout] test plugins::market::renderer::tests::bucket_candles_aggregates_ohlc ... ok
[INFO] [stdout] test plugins::market::models::tests::range_stats_computes_high_low ... ok
[INFO] [stdout] test plugins::market::models::tests::range_stats_avg_close ... ok
[INFO] [stdout] test plugins::market::models::tests::range_stats_computes_trend ... ok
[INFO] [stdout] test plugins::market::models::tests::range_stats_computes_range_pct ... ok
[INFO] [stdout] test plugins::market::models::tests::range_stats_counts_bullish_bearish ... ok
[INFO] [stdout] test plugins::market::renderer::tests::bucket_candles_one_to_one ... ok
[INFO] [stdout] test plugins::market::renderer::tests::bucket_candles_zero_buckets ... ok
[INFO] [stdout] test plugins::market::renderer::tests::bucket_candles_empty_history ... ok
[INFO] [stdout] test plugins::market::renderer::tests::format_axis_price_tiny ... ok
[INFO] [stdout] test plugins::market::renderer::tests::format_axis_price_large ... ok
[INFO] [stdout] test plugins::market::renderer::tests::format_axis_price_medium ... ok
[INFO] [stdout] test plugins::market::renderer::tests::format_time_ago_days ... ok
[INFO] [stdout] test plugins::market::renderer::tests::format_axis_price_small ... ok
[INFO] [stdout] test plugins::market::renderer::tests::format_time_ago_minutes ... ok
[INFO] [stdout] test plugins::market::renderer::tests::format_time_ago_recent ... ok
[INFO] [stdout] test plugins::market::renderer::tests::format_time_ago_hours ... ok
[INFO] [stdout] test plugins::market::renderer::tests::price_to_row_maps_mid_to_middle ... ok
[INFO] [stdout] test plugins::market::renderer::tests::price_to_row_maps_min_to_bottom ... ok
[INFO] [stdout] test plugins::market::renderer::tests::price_to_row_zero_range ... ok
[INFO] [stdout] test plugins::market::renderer::tests::render_candle_bearish ... ok
[INFO] [stdout] test plugins::market::renderer::tests::render_candle_bullish ... ok
[INFO] [stdout] test plugins::market::renderer::tests::render_candle_doji ... ok
[INFO] [stdout] test plugins::market::renderer::tests::truncate_long_string ... ok
[INFO] [stdout] test plugins::market::renderer::tests::truncate_short_string ... ok
[INFO] [stdout] test plugins::market::state::tests::add_ticker_works ... ok
[INFO] [stdout] test plugins::market::state::tests::cycle_sort_goes_through_all ... ok
[INFO] [stdout] test plugins::market::state::tests::favorites_filter_works ... ok
[INFO] [stdout] test notifications::telegram::tests::from_config_prefers_config_over_env ... ok
[INFO] [stdout] test plugins::market::renderer::tests::price_to_row_maps_max_to_top ... ok
[INFO] [stdout] test plugins::market::state::tests::search_filter_works ... ok
[INFO] [stdout] test plugins::market::state::tests::visible_coins_default_sorted_by_rank ... ok
[INFO] [stdout] test plugins::market::tests::cancel_add_does_not_save ... ok
[INFO] [stdout] test plugins::market::models::tests::range_stats_volatility_is_positive ... ok
[INFO] [stdout] test plugins::market::tests::command_remove_queues_pending_action ... ok
[INFO] [stdout] test plugins::market::tests::remove_ticker_returns_save_watchlist ... ok
[INFO] [stdout] test plugins::registry::tests::enabled_plugins_filters_correctly ... ok
[INFO] [stdout] test plugins::settings::tests::alert_thresholds_all_present ... ok
[INFO] [stdout] test plugins::registry::tests::find_by_id_works ... ok
[INFO] [stdout] test plugins::registry::tests::register_and_lookup ... ok
[INFO] [stdout] test plugins::settings::tests::apply_clamps_cpu_threshold ... ok
[INFO] [stdout] test plugins::settings::tests::apply_all_editable_keys_are_handled ... ok
[INFO] [stdout] test plugins::market::tests::add_ticker_returns_save_watchlist ... ok
[INFO] [stdout] test plugins::settings::tests::apply_lhm_password_empty_clears_to_none ... ok
[INFO] [stdout] test plugins::settings::tests::apply_lhm_password_sets_some ... ok
[INFO] [stdout] test plugins::settings::tests::apply_invalid_number_returns_false ... ok
[INFO] [stdout] test plugins::settings::tests::apply_clamps_thermal_threshold ... ok
[INFO] [stdout] test plugins::market::tests::command_duplicate_add_no_pending_action ... ok
[INFO] [stdout] test plugins::market::tests::drain_pending_actions_clears_queue ... ok
[INFO] [stdout] test plugins::settings::tests::apply_lhm_url_rejects_empty ... ok
[INFO] [stdout] test plugins::settings::tests::apply_lhm_url_sets_value ... ok
[INFO] [stdout] test plugins::settings::tests::apply_max_suspicious_outbound ... ok
[INFO] [stdout] test plugins::settings::tests::apply_lhm_username_empty_clears_to_none ... ok
[INFO] [stdout] test plugins::settings::tests::apply_lhm_username_sets_some ... ok
[INFO] [stdout] test plugins::settings::tests::apply_market_poll_enforces_minimum ... ok
[INFO] [stdout] test plugins::settings::tests::apply_max_alerts_enforces_minimum ... ok
[INFO] [stdout] test plugins::market::tests::command_add_queues_pending_action ... ok
[INFO] [stdout] test plugins::market::tests::duplicate_add_does_not_save ... ok
[INFO] [stdout] test plugins::settings::tests::apply_mem_warning_converts_mib_to_bytes ... ok
[INFO] [stdout] test plugins::settings::tests::apply_mem_critical_threshold ... ok
[INFO] [stdout] test plugins::settings::tests::apply_refresh_interval_enforces_minimum ... ok
[INFO] [stdout] test plugins::settings::tests::apply_score_alert_threshold ... ok
[INFO] [stdout] test plugins::settings::tests::apply_shutdown_schedule_start ... ok
[INFO] [stdout] test plugins::settings::tests::apply_shutdown_schedule_start_clamps ... ok
[INFO] [stdout] test plugins::settings::tests::apply_ssh_brute_force_threshold ... ok
[INFO] [stdout] test plugins::settings::tests::apply_ssh_threshold_enforces_minimum ... ok
[INFO] [stdout] test plugins::settings::tests::apply_sustained_seconds_enforces_minimum ... ok
[INFO] [stdout] test plugins::settings::tests::apply_sys_mem_critical_percent ... ok
[INFO] [stdout] test plugins::settings::tests::apply_sys_mem_percent_clamps ... ok
[INFO] [stdout] test plugins::settings::tests::apply_sys_mem_warning_percent ... ok
[INFO] [stdout] test plugins::settings::tests::apply_toggle_flips_boolean ... ok
[INFO] [stdout] test plugins::settings::tests::apply_theme_sets_value ... ok
[INFO] [stdout] test plugins::settings::tests::apply_shutdown_schedule_end ... ok
[INFO] [stdout] test plugins::settings::tests::category_change_resets_item_selection ... ok
[INFO] [stdout] test plugins::settings::tests::apply_unicode_mode ... ok
[INFO] [stdout] test plugins::settings::tests::cycle_advances_theme ... ok
[INFO] [stdout] test plugins::settings::tests::apply_unknown_key_returns_false ... ok
[INFO] [stdout] test plugins::settings::tests::cycle_wraps_around ... ok
[INFO] [stdout] test plugins::settings::tests::edit_mode_blocks_navigation ... ok
[INFO] [stdout] test plugins::settings::tests::glyph_mode_in_general_category ... ok
[INFO] [stdout] test plugins::settings::tests::navigation_does_not_overflow ... ok
[INFO] [stdout] test plugins::settings::tests::number_edit_esc_cancels ... ok
[INFO] [stdout] test plugins::settings::tests::number_edit_confirm_valid ... ok
[INFO] [stdout] test plugins::settings::tests::number_edit_clamps_above_max ... ok
[INFO] [stdout] test plugins::settings::tests::number_edit_clamps_below_min ... ok
[INFO] [stdout] test plugins::settings::tests::number_edit_only_accepts_digits_and_dot ... ok
[INFO] [stdout] test plugins::settings::tests::security_category_exists_in_settings_list ... ok
[INFO] [stdout] test plugins::settings::tests::readonly_shows_status ... ok
[INFO] [stdout] test plugins::settings::tests::number_edit_rejects_double_dot ... ok
[INFO] [stdout] test plugins::settings::tests::number_enter_activates_edit_mode ... ok
[INFO] [stdout] test plugins::settings::tests::text_edit_accepts_printable_chars ... ok
[INFO] [stdout] test plugins::settings::tests::text_edit_respects_max_length ... ok
[INFO] [stdout] test plugins::settings::tests::settings_list_reflects_config_values ... ok
[INFO] [stdout] test plugins::settings::tests::text_edit_backspace_removes_char ... ok
[INFO] [stdout] test plugins::settings::tests::settings_rebuild_after_edit ... ok
[INFO] [stdout] test plugins::settings::tests::toggle_notification_produces_config_changed ... ok
[INFO] [stdout] test plugins::settings::tests::toggle_produces_config_changed ... ok
[INFO] [stdout] test plugins::settings::tests::thermal_schedule_items_exist ... ok
[INFO] [stdout] test plugins::settings::tests::text_edit_confirm_applies_value ... ok
[INFO] [stdout] test plugins::tests::default_methods_return_expected_values ... ok
[INFO] [stdout] test plugins::tests::plugin_action_debug ... ok
[INFO] [stdout] test plugins::windows::models::tests::disk_usage_pct ... ok
[INFO] [stdout] test plugins::windows::models::tests::agent_status_serialization ... ok
[INFO] [stdout] test plugins::windows::models::tests::disk_usage_pct_zero_total ... ok
[INFO] [stdout] test plugins::windows::models::tests::memory_usage_pct_normal ... ok
[INFO] [stdout] test plugins::settings::tests::apply_sustained_seconds ... ok
[INFO] [stdout] test plugins::windows::models::tests::security_status_roundtrip ... ok
[INFO] [stdout] test plugins::windows::models::tests::old_json_without_new_fields_parses ... ok
[INFO] [stdout] test plugins::settings::tests::apply_score_alert_threshold_clamps_max ... ok
[INFO] [stdout] test plugins::windows::models::tests::memory_usage_pct_zero_total ... ok
[INFO] [stdout] test plugins::settings::tests::text_enter_activates_edit_mode ... ok
[INFO] [stdout] test plugins::windows::models::tests::snapshot_with_new_fields_roundtrip ... ok
[INFO] [stdout] test plugins::windows::renderer::tests::format_bytes_gb ... ok
[INFO] [stdout] test plugins::windows::models::tests::network_info_roundtrip ... ok
[INFO] [stdout] test plugins::windows::renderer::tests::format_bytes_mb ... ok
[INFO] [stdout] test plugins::windows::renderer::tests::format_uptime_hours ... ok
[INFO] [stdout] test plugins::windows::renderer::tests::format_uptime_minutes ... ok
[INFO] [stdout] test plugins::windows::renderer::tests::truncate_str_long ... ok
[INFO] [stdout] test plugins::windows::state::tests::cycle_sort_rotates_all_fields ... ok
[INFO] [stdout] test plugins::windows::renderer::tests::truncate_str_short ... ok
[INFO] [stdout] test plugins::windows::state::tests::new_state_defaults ... ok
[INFO] [stdout] test plugins::windows::state::tests::panel_cycle_noop_when_not_focused ... ok
[INFO] [stdout] test plugins::windows::state::tests::panel_focus_toggle ... ok
[INFO] [stdout] test plugins::windows::state::tests::cycle_sort_resets_selection ... ok
[INFO] [stdout] test plugins::windows::renderer::tests::format_uptime_days ... ok
[INFO] [stdout] test plugins::windows::state::tests::panel_cycle_forward_wraps ... ok
[INFO] [stdout] test plugins::windows::state::tests::sort_field_labels ... ok
[INFO] [stdout] test plugins::windows::state::tests::selection_does_not_underflow ... ok
[INFO] [stdout] test plugins::windows::state::tests::toggle_sort_direction ... ok
[INFO] [stdout] test plugins::windows::state::tests::toggle_sort_direction_resets_selection ... ok
[INFO] [stdout] test plugins::windows::tests::ai_error_sets_message ... ok
[INFO] [stdout] test plugins::windows::tests::ai_key_emits_request_with_snapshot ... ok
[INFO] [stdout] test plugins::windows::tests::ai_key_sets_status_without_snapshot ... ok
[INFO] [stdout] test plugins::windows::tests::ai_receive_chunk_and_done ... ok
[INFO] [stdout] test plugins::windows::tests::execute_command_no_snapshot ... ok
[INFO] [stdout] test plugins::windows::tests::execute_command_unknown ... ok
[INFO] [stdout] test plugins::windows::tests::focus_key_toggles_panel ... ok
[INFO] [stdout] test plugins::windows::tests::execute_command_with_snapshot ... ok
[INFO] [stdout] test plugins::windows::tests::home_end_keys ... ok
[INFO] [stdout] test plugins::windows::tests::help_entries_not_empty ... ok
[INFO] [stdout] test plugins::windows::tests::is_enabled_respects_config ... ok
[INFO] [stdout] test plugins::windows::tests::focus_cycle_key_only_when_focused ... ok
[INFO] [stdout] test plugins::windows::tests::key_navigation_up_down ... ok
[INFO] [stdout] test plugins::windows::tests::key_down_does_not_overflow ... ok
[INFO] [stdout] test plugins::windows::tests::key_up_does_not_underflow ... ok
[INFO] [stdout] test plugins::windows::tests::plugin_id_and_label ... ok
[INFO] [stdout] test plugins::windows::tests::security_alerts_all_healthy_no_alerts ... ok
[INFO] [stdout] test plugins::windows::tests::status_bar_hints_not_empty ... ok
[INFO] [stdout] test plugins::windows::tests::security_alerts_stale_updates ... ok
[INFO] [stdout] test plugins::windows::tests::security_alerts_cooldown_dedup ... ok
[INFO] [stdout] test plugins::windows::tests::security_alerts_defender_off ... ok
[INFO] [stdout] test plugins::windows::tests::security_alerts_firewall_off ... ok
[INFO] [stdout] test plugins::windows::tests::unhandled_key_returns_ignored ... ok
[INFO] [stdout] test security::collector::tests::analyze_suspicious_outbound_allows_standard_port ... ok
[INFO] [stdout] test plugins::windows::tests::sort_direction_key_toggles ... ok
[INFO] [stdout] test plugins::windows::tests::sort_key_cycles_field ... ok
[INFO] [stdout] test security::collector::tests::auth_log_scan_brute_force_threshold ... ok
[INFO] [stdout] test plugins::windows::tests::tick_drains_data_from_channel ... ok
[INFO] [stdout] test security::collector::tests::auth_log_scan_best_effort ... ok
[INFO] [stdout] test security::collector::tests::classify_generic_known_port_any_process ... ok
[INFO] [stdout] test plugins::windows::tests::tick_drains_error_from_channel ... ok
[INFO] [stdout] test security::collector::tests::analyze_suspicious_outbound_capped ... ok
[INFO] [stdout] test security::collector::tests::classify_known_port_matching_process ... ok
[INFO] [stdout] test security::collector::tests::classify_known_port_wrong_process ... ok
[INFO] [stdout] test security::collector::tests::analyze_suspicious_outbound_skips_loopback ... ok
[INFO] [stdout] test security::collector::tests::analyze_suspicious_outbound_flags_nonstandard_port ... ok
[INFO] [stdout] test security::collector::tests::extract_failed_ssh_info_invalid_user ... ok
[INFO] [stdout] test security::collector::tests::auth_log_scan_events_bounded ... ok
[INFO] [stdout] test security::collector::tests::extract_failed_ssh_info_no_from_keyword ... ok
[INFO] [stdout] test security::collector::tests::classify_no_pid_is_unowned ... ok
[INFO] [stdout] test security::collector::tests::extract_failed_ssh_info_standard_line ... ok
[INFO] [stdout] test security::collector::tests::extract_auth_detail_truncates ... ok
[INFO] [stdout] test security::collector::tests::classify_unknown_port_with_valid_process ... ok
[INFO] [stdout] test security::collector::tests::extract_sudo_detail_extracts_command ... ok
[INFO] [stdout] test security::collector::tests::parse_cron_line_rejects_non_cron ... ok
[INFO] [stdout] test security::collector::tests::parse_system_cron_line_standard ... ok
[INFO] [stdout] test security::collector::tests::parse_cron_line_standard ... ok
[INFO] [stdout] test security::collector::tests::parse_cron_line_too_few_fields ... ok
[INFO] [stdout] test security::collector::tests::parse_cron_line_at_reboot ... ok
[INFO] [stdout] test security::collector::tests::score_clamps_at_zero ... ok
[INFO] [stdout] test security::collector::tests::score_combined_new_penalties ... ok
[INFO] [stdout] test security::collector::tests::score_deducts_for_no_auth_log ... ok
[INFO] [stdout] test security::collector::tests::score_deducts_for_modified_packages ... ok
[INFO] [stdout] test security::collector::tests::score_deducts_for_ssh_brute_force ... ok
[INFO] [stdout] test security::collector::tests::score_deducts_for_suspicious_and_unowned ... ok
[INFO] [stdout] test security::collector::tests::score_deducts_for_suspicious_outbound_capped ... ok
[INFO] [stdout] test security::collector::tests::score_deducts_for_threats ... ok
[INFO] [stdout] test security::collector::tests::score_starts_at_100_when_clean ... ok
[INFO] [stdout] test security::state::tests::default_state_is_clean ... ok
[INFO] [stdout] test security::state::tests::focus_panel_resets_selection ... ok
[INFO] [stdout] test security::state::tests::focused_item_count_per_panel ... ok
[INFO] [stdout] test security::state::tests::panel_next_cycles_all ... ok
[INFO] [stdout] test security::state::tests::port_risk_ordering ... ok
[INFO] [stdout] test security::state::tests::score_label_thresholds ... ok
[INFO] [stdout] test security::state::tests::security_event_age_display ... ok
[INFO] [stdout] test security::state::tests::panel_prev_is_inverse_of_next ... ok
[INFO] [stdout] test store::tests::detect_process_start_exit ... ok
[INFO] [stdout] test store::tests::event_kind_from_str_unknown ... ok
[INFO] [stdout] test store::tests::event_kind_roundtrip ... ok
[INFO] [stdout] test store::tests::format_age_hours ... ok
[INFO] [stdout] test store::tests::format_age_minutes ... ok
[INFO] [stdout] test store::tests::format_age_seconds ... ok
[INFO] [stdout] test store::tests::add_and_get_favorites ... ok
[INFO] [stdout] test store::tests::add_favorite_is_idempotent ... ok
[INFO] [stdout] test store::tests::event_counts_by_kind ... ok
[INFO] [stdout] test store::tests::insert_and_query_events ... ok
[INFO] [stdout] test store::tests::insert_and_query_process_snapshots ... ok
[INFO] [stdout] test store::tests::insert_and_query_system_snapshot ... ok
[INFO] [stdout] test store::tests::get_favorites_empty_initially ... ok
[INFO] [stdout] test security::collector::tests::logged_in_users_returns_vec ... ok
[INFO] [stdout] test store::tests::parse_hex_addr_ipv4_any ... ok
[INFO] [stdout] test store::tests::parse_hex_addr_ipv4 ... ok
[INFO] [stdout] test store::tests::process_snapshots_deduplication ... ok
[INFO] [stdout] test store::tests::cleanup_removes_old_data ... ok
[INFO] [stdout] test store::tests::open_in_memory ... ok
[INFO] [stdout] test store::tests::recent_events_summary_format ... ok
[INFO] [stdout] test store::tests::query_events_by_kind ... ok
[INFO] [stdout] test store::tests::remove_favorite ... ok
[INFO] [stdout] test store::tests::tcp_state_names ... ok
[INFO] [stdout] test thermal::shutdown::tests::abort_on_normal_returns_false ... ok
[INFO] [stdout] test thermal::shutdown::tests::abort_resets_state ... ok
[INFO] [stdout] test security::collector::tests::collect_cron_entries_returns_bounded_vec ... ok
[INFO] [stdout] test thermal::shutdown::tests::counting_recovers_below_critical ... ok
[INFO] [stdout] test thermal::shutdown::tests::disabled_manager_does_nothing ... ok
[INFO] [stdout] test thermal::shutdown::tests::normal_to_counting_at_emergency ... ok
[INFO] [stdout] test thermal::shutdown::tests::seconds_remaining_counting ... ok
[INFO] [stdout] test thermal::shutdown::tests::seconds_remaining_normal_is_none ... ok
[INFO] [stdout] test thermal::shutdown::tests::state_labels ... ok
[INFO] [stdout] test thermal::tests::detect_wsl_host_ip_returns_some_on_wsl ... ok
[INFO] [stdout] test thermal::shutdown::tests::normal_stays_normal_below_emergency ... ok
[INFO] [stdout] test thermal::tests::from_config_or_env_falls_back_to_env_when_config_empty ... ok
[INFO] [stdout] test thermal::tests::from_config_or_env_falls_back_when_config_has_empty_strings ... ok
[INFO] [stdout] test thermal::tests::from_config_or_env_prefers_config_over_env ... ok
[INFO] [stdout] test thermal::tests::from_config_or_env_returns_none_when_both_missing ... ok
[INFO] [stdout] test thermal::tests::is_cpu_hardware_detects_intel_amd ... ok
[INFO] [stdout] test thermal::tests::is_gpu_hardware_detects_nvidia_amd ... ok
[INFO] [stdout] test thermal::tests::is_motherboard_cpu_sensor_detects_socket ... ok
[INFO] [stdout] test thermal::tests::is_memory_hardware_detects_ram ... ok
[INFO] [stdout] test thermal::tests::is_noise_sensor_filters_tjmax ... ok
[INFO] [stdout] test thermal::tests::is_noise_sensor_filters_metadata ... ok
[INFO] [stdout] test thermal::tests::is_storage_hardware_detects_drives ... ok
[INFO] [stdout] test thermal::tests::lhm_auth_from_env_returns_none_when_missing ... ok
[INFO] [stdout] test thermal::tests::lhm_auth_from_env_returns_some_when_set ... ok
[INFO] [stdout] test store::tests::system_snapshot_time_filter ... ok
[INFO] [stdout] test thermal::tests::natural_sort_key_cores ... ok
[INFO] [stdout] test thermal::tests::natural_sort_key_no_number ... ok
[INFO] [stdout] test thermal::tests::live_lhm_poll_returns_thermal_data ... ok
[INFO] [stdout] test thermal::tests::motherboard_cpu_sensor_does_not_inflate_max_temp ... ok
[INFO] [stdout] test thermal::tests::parse_lhm_json_empty_returns_none ... ok
[INFO] [stdout] test store::tests::remove_nonexistent_favorite_is_noop ... ok
[INFO] [stdout] test thermal::tests::noise_sensors_excluded_from_parse ... ok
[INFO] [stdout] test thermal::tests::parse_lhm_json_with_ram_temps ... ok
[INFO] [stdout] test thermal::tests::parse_lhm_json_no_ram_temps ... ok
[INFO] [stdout] test thermal::tests::parse_lhm_json_full_tree ... ok
[INFO] [stdout] test thermal::tests::parse_sensor_value_celsius ... ok
[INFO] [stdout] test thermal::tests::parse_sensor_value_comma_decimal ... ok
[INFO] [stdout] test thermal::tests::parse_sensor_value_empty ... ok
[INFO] [stdout] test thermal::tests::parse_sensor_value_rpm ... ok
[INFO] [stdout] test thermal::tests::resolve_lhm_url_respects_env_override ... ok
[INFO] [stdout] test ui::glyphs::tests::ascii_mode_has_safe_chars ... ok
[INFO] [stdout] test store::tests::table_stats_empty ... ok
[INFO] [stdout] test thermal::tests::thermal_snapshot_to_text_includes_ram ... ok
[INFO] [stdout] test ui::glyphs::tests::ascii_spinner_cycles ... ok
[INFO] [stdout] test thermal::tests::thermal_snapshot_to_text ... ok
[INFO] [stdout] test ui::glyphs::tests::bar_helper_full ... ok
[INFO] [stdout] test store::tests::sync_favorites_adds_and_removes ... ok
[INFO] [stdout] test ui::glyphs::tests::bar_helper_half ... ok
[INFO] [stdout] test ui::glyphs::tests::glyph_mode_from_config ... ok
[INFO] [stdout] test store::tests::sync_favorites_empty_to_empty ... ok
[INFO] [stdout] test ui::glyphs::tests::unicode_mode_has_block_chars ... ok
[INFO] [stdout] test ui::glyphs::tests::spinner_cycles ... ok
[INFO] [stdout] test ui::renderer::helpers::tests::centered_rect_normal ... ok
[INFO] [stdout] test ui::renderer::helpers::tests::centered_rect_with_offset_area ... ok
[INFO] [stdout] test ui::renderer::helpers::tests::centered_rect_exact_fit ... ok
[INFO] [stdout] test ui::renderer::helpers::tests::format_rate_bytes ... ok
[INFO] [stdout] test ui::renderer::helpers::tests::format_rate_gib ... ok
[INFO] [stdout] test ui::renderer::helpers::tests::centered_rect_larger_than_area ... ok
[INFO] [stdout] test ui::renderer::helpers::tests::format_rate_kib ... ok
[INFO] [stdout] test ui::renderer::helpers::tests::format_rate_mib ... ok
[INFO] [stdout] test ui::renderer::helpers::tests::format_rate_zero ... ok
[INFO] [stdout] test ui::renderer::helpers::tests::truncate_str_adds_ellipsis ... ok
[INFO] [stdout] test ui::renderer::helpers::tests::truncate_str_empty_input ... ok
[INFO] [stdout] test ui::renderer::helpers::tests::truncate_str_max_0 ... ok
[INFO] [stdout] test ui::renderer::helpers::tests::truncate_str_exact_fit ... ok
[INFO] [stdout] test ui::renderer::helpers::tests::truncate_str_max_3 ... ok
[INFO] [stdout] test ui::renderer::helpers::tests::truncate_str_short_unchanged ... ok
[INFO] [stdout] test ui::glyphs::tests::bar_helper_empty ... ok
[INFO] [stdout] test ui::state::tests::ai_cursor_right_at_end ... ok
[INFO] [stdout] test ui::state::tests::ai_input_backspace_at_start ... ok
[INFO] [stdout] test ui::state::tests::ai_cursor_movement ... ok
[INFO] [stdout] test ui::renderer::helpers::tests::truncate_str_max_2 ... ok
[INFO] [stdout] test ui::state::tests::ai_input_char_and_backspace ... ok
[INFO] [stdout] test ui::state::tests::ai_submit_empty_returns_none ... ok
[INFO] [stdout] test ui::state::tests::ai_submit_returns_text_and_clears ... ok
[INFO] [stdout] test ui::state::tests::ai_submit_whitespace_only_returns_none ... ok
[INFO] [stdout] test ui::state::tests::apply_direction_asc ... ok
[INFO] [stdout] test ui::state::tests::apply_direction_desc ... ok
[INFO] [stdout] test ui::state::tests::close_process_detail_clears_loading_state ... ok
[INFO] [stdout] test ui::state::tests::command_result_from_report_clean_dir_action ... ok
[INFO] [stdout] test ui::state::tests::command_result_from_report_extracts_actions ... ok
[INFO] [stdout] test ui::state::tests::command_result_from_report_free_port_action ... ok
[INFO] [stdout] test ui::state::tests::command_result_from_report_renice_action ... ok
[INFO] [stdout] test ui::state::tests::command_result_has_executable_actions_info_only ... ok
[INFO] [stdout] test ui::state::tests::command_result_text_only_has_no_actions ... ok
[INFO] [stdout] test ui::state::tests::cycle_focus_forward ... ok
[INFO] [stdout] test ui::state::tests::cycle_lang_includes_cjk_when_supported ... ok
[INFO] [stdout] test ui::state::tests::cycle_sort_goes_through_all ... ok
[INFO] [stdout] test ui::state::tests::cycle_theme_changes ... ok
[INFO] [stdout] test ui::state::tests::cycle_lang_skips_cjk_when_unsupported ... ok
[INFO] [stdout] test ui::state::tests::danger_alert_count_none ... ok
[INFO] [stdout] test ui::state::tests::filtered_processes_by_cmd ... ok
[INFO] [stdout] test ui::state::tests::danger_alert_count_mixed ... ok
[INFO] [stdout] test ui::state::tests::filtered_processes_by_name ... ok
[INFO] [stdout] test ui::state::tests::filtered_processes_by_pid ... ok
[INFO] [stdout] test ui::state::tests::filtered_processes_case_insensitive ... ok
[INFO] [stdout] test ui::state::tests::filtered_processes_no_filter ... ok
[INFO] [stdout] test ui::state::tests::history_window_next_cycles ... ok
[INFO] [stdout] test ui::state::tests::history_window_next_prev_inverse ... ok
[INFO] [stdout] test ui::state::tests::history_window_points ... ok
[INFO] [stdout] test ui::state::tests::load_extra_does_nothing_when_popup_closed_before_load ... ok
[INFO] [stdout] test ui::state::tests::load_extra_noop_when_no_pending ... ok
[INFO] [stdout] test ui::state::tests::history_window_prev_cycles ... ok
[INFO] [stdout] test ui::state::tests::next_tab_cycles ... ok
[INFO] [stdout] test ui::state::tests::next_tab_with_plugins_cycles ... ok
[INFO] [stdout] test ui::state::tests::load_process_detail_extra_populates_fds_and_environ ... ok
[INFO] [stdout] test ui::state::tests::open_process_detail_sets_loading_true ... ok
[INFO] [stdout] test ui::state::tests::scroll_down_increases ... ok
[INFO] [stdout] test ui::state::tests::scroll_up_at_zero_stays ... ok
[INFO] [stdout] test ui::state::tests::prev_tab_cycles ... ok
[INFO] [stdout] test ui::state::tests::selected_process_info_empty ... ok
[INFO] [stdout] test ui::state::tests::renice_dialog_open_close ... ok
[INFO] [stdout] test ui::state::tests::scroll_alerts_tab ... ok
[INFO] [stdout] test ui::state::tests::set_status_stores_message ... ok
[INFO] [stdout] test ui::state::tests::sort_by_cpu_asc ... ok
[INFO] [stdout] test ui::state::tests::signal_picker_open_close ... ok
[INFO] [stdout] test ui::state::tests::selected_process_info_returns_correct ... ok
[INFO] [stdout] test ui::state::tests::sort_by_name ... ok
[INFO] [stdout] test ui::state::tests::sort_by_cpu_desc ... ok
[INFO] [stdout] test ui::state::tests::tab_all_with_plugins_inserts_between_security_and_askai ... ok
[INFO] [stdout] test ui::state::tests::signal_picker_no_process ... ok
[INFO] [stdout] test ui::state::tests::tab_all_with_zero_plugins_has_six ... ok
[INFO] [stdout] test security::collector::tests::collect_systemd_timers_returns_bounded_vec ... ok
[INFO] [stdout] test ui::state::tests::tab_index ... ok
[INFO] [stdout] test ui::state::tests::sort_by_memory ... ok
[INFO] [stdout] test ui::theme::tests::builtin_theme_names_dracula_first ... ok
[INFO] [stdout] test ui::state::tests::toggle_sort_direction ... ok
[INFO] [stdout] test ui::state::tests::toggle_focus_on_dashboard ... ok
[INFO] [stdout] test ui::state::tests::sort_by_pid ... ok
[INFO] [stdout] test ui::state::tests::tree_processes_flat ... ok
[INFO] [stdout] test ui::theme::tests::by_name_all_builtins ... ok
[INFO] [stdout] test ui::state::tests::tree_processes_parent_child ... ok
[INFO] [stdout] test ui::theme::tests::by_name_unknown ... ok
[INFO] [stdout] test ui::theme::tests::default_is_dracula ... ok
[INFO] [stdout] test ui::theme::tests::by_name_case_insensitive ... ok
[INFO] [stdout] test ui::theme::tests::next_builtin_cycles_through_all ... ok
[INFO] [stdout] test ui::theme::tests::next_builtin_wraps_around ... ok
[INFO] [stdout] test ui::theme::tests::parse_color_white ... ok
[INFO] [stdout] test ui::theme::tests::parse_color_black ... ok
[INFO] [stdout] test ui::theme::tests::parse_color_invalid_length ... ok
[INFO] [stdout] test ui::theme::tests::parse_color_invalid_hex ... ok
[INFO] [stdout] test ui::theme::tests::parse_color_with_hash ... ok
[INFO] [stdout] test ui::theme::tests::parse_color_without_hash ... ok
[INFO] [stdout] test ui::theme::tests::parse_color_lowercase ... ok
[INFO] [stdout] test ui::theme::tests::theme_cycle_starts_from_dracula ... ok
[INFO] [stdout] test ui::theme::tests::parse_color_none ... ok
[INFO] [stdout] test ui::theme::tests::temp_color_critical ... ok
[INFO] [stdout] test ui::theme::tests::temp_color_high ... ok
[INFO] [stdout] test ui::theme::tests::usage_color_critical ... ok
[INFO] [stdout] test ui::theme::tests::temp_color_low ... ok
[INFO] [stdout] test ui::theme::tests::temp_color_mid ... ok
[INFO] [stdout] test ui::theme::tests::usage_color_high ... ok
[INFO] [stdout] test ui::theme::tests::usage_color_mid ... ok
[INFO] [stdout] test utils::tests::detect_platform_returns_consistent_value ... ok
[INFO] [stdout] test utils::tests::loading_dots_cycles ... ok
[INFO] [stdout] test utils::tests::has_windows_interop_matches_wsl ... ok
[INFO] [stdout] test utils::tests::spinner_char_cycles ... ok
[INFO] [stdout] test utils::tests::truncate_str_empty_string ... ok
[INFO] [stdout] test utils::tests::truncate_str_exact_length ... ok
[INFO] [stdout] test ui::theme::tests::usage_color_low ... ok
[INFO] [stdout] test utils::tests::is_wsl_matches_detect_platform ... ok
[INFO] [stdout] test utils::tests::truncate_str_max_len_4 ... ok
[INFO] [stdout] test utils::tests::truncate_str_max_len_3_or_less ... ok
[INFO] [stdout] test utils::tests::truncate_str_max_len_zero ... ok
[INFO] [stdout] test utils::tests::truncate_str_short_string_unchanged ... ok
[INFO] [stdout] test utils::tests::truncate_str_needs_truncation ... ok
[INFO] [stdout] test thermal::tests::resolve_lhm_url_substitutes_wsl_host ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- thermal::tests::resolve_lhm_url_substitutes_wsl_host stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'thermal::tests::resolve_lhm_url_substitutes_wsl_host' (508) panicked at src/thermal/mod.rs:935:13:
[INFO] [stdout] assertion failed: resolved.contains(":8085/data.json")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5a541e51ea88 - std[929523f510218772]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5a541e51ea88 - std[929523f510218772]::backtrace_rs::backtrace::trace_unsynchronized::<std[929523f510218772]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5a541e51ea88 - std[929523f510218772]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5a541e51ea88 - <<std[929523f510218772]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[28b146924c2f19c6]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5a541e5379ca - <core[28b146924c2f19c6]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5a541e5379ca - core[28b146924c2f19c6]::fmt::write
[INFO] [stdout]    6:     0x5a541e523b72 - std[929523f510218772]::io::default_write_fmt::<alloc[95e62e727ddf147d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5a541e523b72 - <alloc[95e62e727ddf147d]::vec::Vec<u8> as std[929523f510218772]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5a541e4fa0f6 - <std[929523f510218772]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5a541e4fa0f6 - std[929523f510218772]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5a541e515549 - std[929523f510218772]::panicking::default_hook
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5a541dccbc2c - <alloc[95e62e727ddf147d]::boxed::Box<dyn for<'a, 'b> core[28b146924c2f19c6]::ops::function::Fn<(&'a std[929523f510218772]::panic::PanicHookInfo<'b>,), Output = ()> + core[28b146924c2f19c6]::marker::Sync + core[28b146924c2f19c6]::marker::Send> as core[28b146924c2f19c6]::ops::function::Fn<(&std[929523f510218772]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/alloc/src/boxed.rs:2291:9
[INFO] [stdout]   12:     0x5a541dccbc2c - test[6ec0502068880816]::test_main_inner::<test[6ec0502068880816]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5a541e5157c2 - <alloc[95e62e727ddf147d]::boxed::Box<dyn for<'a, 'b> core[28b146924c2f19c6]::ops::function::Fn<(&'a std[929523f510218772]::panic::PanicHookInfo<'b>,), Output = ()> + core[28b146924c2f19c6]::marker::Sync + core[28b146924c2f19c6]::marker::Send> as core[28b146924c2f19c6]::ops::function::Fn<(&std[929523f510218772]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/alloc/src/boxed.rs:2291:9
[INFO] [stdout]   14:     0x5a541e5157c2 - std[929523f510218772]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5a541e4fa1e4 - std[929523f510218772]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x5a541e4eeea9 - std[929523f510218772]::sys::backtrace::__rust_end_short_backtrace::<std[929523f510218772]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5a541e4fb30d - __rustc[acf6043c977865fb]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5a541e53818c - core[28b146924c2f19c6]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5a541e538152 - core[28b146924c2f19c6]::panicking::panic
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x5a541da8c6bc - sentinel[3afaa830beaf3e5f]::thermal::tests::resolve_lhm_url_substitutes_wsl_host
[INFO] [stdout]                                at /opt/rustwide/workdir/src/thermal/mod.rs:935:13
[INFO] [stdout]   21:     0x5a541da82e57 - sentinel[3afaa830beaf3e5f]::thermal::tests::resolve_lhm_url_substitutes_wsl_host::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/thermal/mod.rs:925:46
[INFO] [stdout]   22:     0x5a541dc1f216 - <sentinel[3afaa830beaf3e5f]::thermal::tests::resolve_lhm_url_substitutes_wsl_host::{closure#0} as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5a541dcbed0b - <fn() -> core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String> as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5a541dcbed0b - test[6ec0502068880816]::__rust_begin_short_backtrace::<core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>, fn() -> core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:724:18
[INFO] [stdout]   25:     0x5a541dccc585 - test[6ec0502068880816]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:747:74
[INFO] [stdout]   26:     0x5a541dccc585 - <core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<test[6ec0502068880816]::run_test_in_process::{closure#0}> as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x5a541dccc585 - std[929523f510218772]::panicking::catch_unwind::do_call::<core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<test[6ec0502068880816]::run_test_in_process::{closure#0}>, core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x5a541dccc585 - std[929523f510218772]::panicking::catch_unwind::<core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>, core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<test[6ec0502068880816]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x5a541dccc585 - std[929523f510218772]::panic::catch_unwind::<core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<test[6ec0502068880816]::run_test_in_process::{closure#0}>, core[28b146924c2f19c6]::result::Result<(), alloc[95e62e727ddf147d]::string::String>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x5a541dccc585 - test[6ec0502068880816]::run_test_in_process
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:747:27
[INFO] [stdout]   31:     0x5a541dccc585 - test[6ec0502068880816]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:668:43
[INFO] [stdout]   32:     0x5a541dcc70e4 - test[6ec0502068880816]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/test/src/lib.rs:698:41
[INFO] [stdout]   33:     0x5a541dcc70e4 - std[929523f510218772]::sys::backtrace::__rust_begin_short_backtrace::<test[6ec0502068880816]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x5a541dccf602 - std[929523f510218772]::thread::lifecycle::spawn_unchecked::<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   35:     0x5a541dccf602 - <core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x5a541dccf602 - std[929523f510218772]::panicking::catch_unwind::do_call::<core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x5a541dccf602 - std[929523f510218772]::panicking::catch_unwind::<(), core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x5a541dccf602 - std[929523f510218772]::panic::catch_unwind::<core[28b146924c2f19c6]::panic::unwind_safe::AssertUnwindSafe<std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x5a541dccf602 - std[929523f510218772]::thread::lifecycle::spawn_unchecked::<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   40:     0x5a541dccf602 - <std[929523f510218772]::thread::lifecycle::spawn_unchecked<test[6ec0502068880816]::run_test::{closure#1}, ()>::{closure#1} as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x5a541e51d9ff - <alloc[95e62e727ddf147d]::boxed::Box<dyn core[28b146924c2f19c6]::ops::function::FnOnce<(), Output = ()> + core[28b146924c2f19c6]::marker::Send> as core[28b146924c2f19c6]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/alloc/src/boxed.rs:2277:9
[INFO] [stdout]   42:     0x5a541e51d9ff - <std[929523f510218772]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/cced03bfd61a304243a34504618ecec86c17063f/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   43:     0x7c8905c91aa4 - <unknown>
[INFO] [stdout]   44:     0x7c8905d1ea64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     thermal::tests::resolve_lhm_url_substitutes_wsl_host
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 553 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.28s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin sentinel`
[INFO] running `Command { std: "docker" "inspect" "20f92f63ddb0bdefb9155a3815be944a83e376aa14a25b55bcf07dfd85b1c0e0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "20f92f63ddb0bdefb9155a3815be944a83e376aa14a25b55bcf07dfd85b1c0e0", kill_on_drop: false }`
[INFO] [stdout] 20f92f63ddb0bdefb9155a3815be944a83e376aa14a25b55bcf07dfd85b1c0e0
